hatenaintern2021 day2
マスターとワーカー
マスター
コントロールプレーン
パブリッククラウドでは意識せず使える
ワーカー
データプレーン
物理でも仮想でも良い
Podを動かすためのリソース
デプロイの最小単位
1つ以上のコンテナから
デザインパターン
Proxy+メインコンテナなどでサブコンテナで補助する
Namespace、Linuxコンテナの分離でも聞きましたがなんか別モンっぽい
ローリングーローリングー
Deploymentで複数のレプリカセットを切り替えローリングアップデート
ロールバックもやるぜ
Service
外部公開エンドポイント用リソース
トラフィックをPodsにロードバランス
Serviceでくるめて切れないように
エンドポイント用とによって種類が何個かある
というかクラスタ内DNSの利用推奨らしい
intern-2021-hatena.cluster.local
HTTPS終端
Dockerにもあるがこっちはもうちょっと運用用?
うまく動いてなかったらバシっと落とす
うまく動いてるかチェックして死んでたら再起動
チェックが通ってからトラフィックを受け付ける、起動を待つ
やってみよう ハンズオン
k8s-handson
https://gyazo.com/ad7e1127ae8af80da9bf82f4c4d85139
日本語なんだ
離陸しそう
vimが応答しなくなった
セキュリティーソフトとZoomでめちゃバリ食べててこれ
https://gyazo.com/4a7a5d46a6701661bcb239307b9f88a8
https://gyazo.com/88c5a907647d345eed04821682efa233
https://gyazo.com/a824cb9e53206b382152524228a72fff
破滅してきた
https://gyazo.com/a7845647eb46f3e151137f6eef1b339c
通った
ゐる。
MSってなんなんだ
ユーザーの求めに應じて、規則に沿つて物事を提供する
このインターンもさう
さういへばAmazonのすべての内部サービスを疎結合にする、從はないやつはクビやみたいな文章前にも讀んだことあるな 規則に從はない提供はサービスぢやない!
後々重要に?
まとめてデプロイするならMonolith
一つだけでプロイできるならMicro
質問タイム1
數珠玉の圖で示されたドッキングしてゐる状態つて?Mackyson.icon
Userの求めと仕組みのDBを
RPCのやうなほ互ひを知つていなければならない状態
gRPCつてこれに當てはまらない??
際どいところ!ne-sachirou.icon
Breaking changesを回避して後方互換性を保つてゐればギリMicroと…
Buissness capability / Scalability
team 間の communication は team 内の communicationより困難である
Service全体を良く素早く変更し続けること
security / availability
障害を波及させない
障害から復旧する
Schema first / protocol first
抽象できる、テストできる、CICDできる
サービスメッシュ
サービスは他のサービスと直接通信しない
コントロールプレーン:Istiod
Api compotision
A + B => f(A+B) => C
分散データ管理
TCC (Try-confirm / cancel)
やってみて、みんなよければ保存、だめならキャンセル
落ちてると永遠に終わらないが、実装がかんたん
saga
redux-saga!?
cherography based saga
A->B->Cの非同期リレー、ゆったり変更
失敗したら失敗を逆伝搬、全部ロールバック
冪等性をもたせて、再リトライがめっちゃできるようにする
orchestration based saga
共有DB
DB は内臟。内臟を共有するやうなもの。覺悟はいいか?
CAP定理
consistency
availability
partition tolerance
この3つの両立はできない
Micro frontend飛んで泣いちゃった
Microservice Release
build + deploy + release
3つに分ける
canary release
一部だけ新しいリリース
b/g deploy
新旧両方稼働させ、その前段で切り分ける
どのようなデプロイをしても、新旧デプロイは絶対並列する!
後方互換性を保つ
API Versioning
error budgetのうちは許容
質問コーナー
Microserviceの分割をしないほうが良いパターンは?
デプロイの単位を分けないとき
抽象的な解はない
分けてうまく行ったパターンは?
Mackerelのaws integration / Webサービス外的監視
はてなブックマークの重要ロジックをガッツリScalaで、外に見せる部分はPerlでバーっと
後半で困らないように
概念ではなくテクニック中心
フロントエンドの時間だ!!!
脚注が100を超えていて魂が震えていたら、実はページごとに100更新?
たくさんのおまけ付き、そのうち一般公開されるかもとのこと